home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 057 - Algebra Workshop.dsk / RELATION.PLOTTE.bas < prev    next >
BASIC Source File  |  2019-02-17  |  9KB  |  255 lines

  1. 1  REM     RELATION PLOTTER
  2. 2  REM     BY WILLIAM J. MASALSKI
  3. 3  REM     SCHOOL OF EDUCATION
  4. 5  REM     AMHERST 01003<CTRL-J>
  5. 10  HOME : LOMEM: 24576
  6. 20  GOSUB 200: REM ---DRAW FRAME---
  7. 30  GOSUB 300: REM ---DRAW X-AXIS---
  8. 40  GOSUB 400: REM ---DRAW Y-AXIS---
  9. 50  GOSUB 500: REM ---WRITE AND PLOT EQUATION---
  10. 60  GOTO 50
  11. 70  END :<CTRL-J>
  12. 200  REM ---DRAW FRAME---
  13. 210  HGR : HCOLOR= 3
  14. 220  HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0
  15. 230  RETURN :<CTRL-J>
  16. 300  REM ---DRAW X-AXIS---
  17. 310  REM ORIGIN = 139,79
  18. 320  HPLOT 0,79 TO 279,79
  19. 330  FOR X = 0 TO 279  STEP 13.9
  20. 340  HPLOT X,78: HPLOT X,80
  21. 350  NEXT X
  22. 360  RETURN :<CTRL-J>
  23. 400  REM ---DRAW Y-AXIS---
  24. 410  LET K = .80: REM PIXEL RATIO
  25. 420  HPLOT 139,0 TO 139,159
  26. 430  FOR Y = 79 TO 159  STEP 13.9 *K
  27. 440  HPLOT 138,Y: HPLOT 140,Y
  28. 450  NEXT Y
  29. 460  FOR Y = 79 TO 0  STEP  -13.9 *K
  30. 470  HPLOT 138,Y: HPLOT 140,Y
  31. 480  NEXT Y
  32. 490  RETURN :<CTRL-J>
  33. 500  REM ---WRITE AND PLOT EQUATION---
  34. 510  VTAB 21: INPUT "1-LIN 2-QUAD 3-CIRCLE 4-CLEAR 5-QUIT:";N
  35. 520  HOME 
  36. 530  IF N <1  OR N >6  THEN  GOTO 510
  37. 540  ON N GOSUB 1000,2000,3000,4000,5000
  38. 550  RETURN :<CTRL-J>
  39. 1000  REM ---LINEAR---
  40. 1002  VTAB 21: INPUT "LINEAR: 1,2,OR 3 :";N
  41. 1004  IF N <1  OR N >3  THEN  GOTO 1008
  42. 1006  ON N GOSUB 1100,1200,1300
  43. 1008  RETURN :<CTRL-J>
  44. 1100  REM ---LINEAR EQUATION OF FORM Y = A*X + B---
  45. 1102  VTAB 22: PRINT "  Y = A*X + B"
  46. 1104  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  47. 1106  HOME 
  48. 1108  VTAB 22: PRINT "  Y = ";A;"*X + B"
  49. 1110  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  50. 1112  HOME 
  51. 1114  VTAB 22: PRINT "  Y = ";A;"*X + ";B
  52. 1116  FOR X =  -10 TO 10  STEP .2
  53. 1118  LET Y = A *X +B
  54. 1120  LET H = 13.9 *X +139
  55. 1122  LET V = 79 -(13.9 *K *Y)
  56. 1124  IF V > = 0  AND V < = 159  THEN  HPLOT H,V
  57. 1126  NEXT X
  58. 1128  RETURN :<CTRL-J>
  59. 1200  REM ---LINEAR INEQUALITY OF FORM Y < A*X + B---
  60. 1202  VTAB 22: PRINT "  Y < A*X + B"
  61. 1204  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  62. 1206  HOME 
  63. 1208  VTAB 22: PRINT "  Y < ";A;"*X + B"
  64. 1210  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  65. 1212  HOME 
  66. 1214  VTAB 22: PRINT "  Y < ";A;"*X + ";B
  67. 1216  LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
  68. 1218  FOR X =  -10 TO 10  STEP .2
  69. 1220  LET Y = A *X +B
  70. 1222  LET H = 13.9 *X +139
  71. 1224  LET V = 79 -(13.9 *K *Y)
  72. 1226  IF V > = 0  AND V < = 159  THEN  HPLOT H,V
  73. 1228  LET C = C * -1: REM SHADES WHEN C = -1 
  74. 1230  IF C = 1  THEN  GOTO 1236
  75. 1232  IF V > = 0  AND V < = 159  THEN  HPLOT H,V TO H,159
  76. 1234  IF V <0  THEN  HPLOT H,0 TO H,159
  77. 1236  NEXT X
  78. 1238  RETURN :<CTRL-J>
  79. 1300  REM ---LINEAR INEQUALITY OF FORM Y > A*X + B---
  80. 1302  VTAB 22: PRINT "  Y > A*X + B"
  81. 1304  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  82. 1306  HOME 
  83. 1308  VTAB 22: PRINT "  Y > ";A;"*X + B"
  84. 1310  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  85. 1312  HOME 
  86. 1314  VTAB 22: PRINT "  Y > ";A;"*X + ";B
  87. 1316  LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE 
  88. 1318  FOR X =  -10 TO 10  STEP .2
  89. 1320  LET Y = A *X +B
  90. 1322  LET H = 13.9 *X +139
  91. 1324  LET V = 79 -(13.9 *K *Y)
  92. 1326  IF V > = 0  AND V < = 159  THEN  HPLOT H,V
  93. 1328  LET C = C * -1: REM  SHADES WHEN C = -1
  94. 1330  IF C = 1  THEN  GOTO 1336
  95. 1332  IF V > = 0  AND V < = 159  THEN  HPLOT H,V TO H,0
  96. 1334  IF V >159  THEN  HPLOT H,159 TO H,0
  97. 1336  NEXT X
  98. 1338  RETURN :<CTRL-J>
  99. 2000  REM ---QUADRATIC---
  100. 2002  VTAB 21: INPUT "QUADRATIC: 1,2,3,4,OR 5 :";N
  101. 2004  IF N <1  OR N >5  THEN  GOTO 2008
  102. 2006  ON N GOSUB 2102,2200,2300,2400,2500
  103. 2008  RETURN :<CTRL-J>
  104. 2100  REM ---QUADRATIC EQUATION OF FORM Y = A*X^2 + B*X + C---
  105. 2102  VTAB 22: PRINT "  Y = A*X^2 + B*X + C"
  106. 2104  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  107. 2106  HOME 
  108. 2108  VTAB 22: PRINT "  Y = ";A;"*X^2 + B*X + C"
  109. 2110  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  110. 2112  HOME 
  111. 2114  VTAB 22: PRINT "  Y = ";A;"*X^2 + ";B;"*X + C"
  112. 2116  INPUT "TYPE IN YOUR VALUE FOR C: ";C
  113. 2118  HOME 
  114. 2120  VTAB 22: PRINT "  Y = ";A;"*X^2 + ";B;"*X + ";C
  115. 2122  FOR X =  -10 TO 10  STEP .2
  116. 2124  LET Y = A *X ^2 +B *X +C
  117. 2126  LET H = 13.9 *X +139
  118. 2128  LET V = 79 -(13.9 *K *Y)
  119. 2130  IF V <0  OR V >159  THEN  GOTO 2134
  120. 2132  HPLOT H,V
  121. 2134  NEXT X
  122. 2136  RETURN :<CTRL-J>
  123. 2200  REM ---QUADRATIC EQUATION OF FORM Y = A*X^2 + B---
  124. 2202  VTAB 22: PRINT "  Y = A*X^2 + B
  125. 2204  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  126. 2206  HOME 
  127. 2208  VTAB 22: PRINT "  Y = ";A;"*X^2 + B"
  128. 2210  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  129. 2212  HOME 
  130. 2214  VTAB 22: PRINT "  Y = ";A;"*X^2 + ";B
  131. 2216  FOR X =  -10 TO 10  STEP .2
  132. 2218  LET Y = A *X ^2 +B
  133. 2220  LET H = 13.9 *X +139
  134. 2222  LET V = 79 -(13.9 *K *Y)
  135. 2224  IF V <0  OR V >159  THEN  GOTO 2228
  136. 2226  HPLOT H,V
  137. 2228  NEXT X
  138. 2230  RETURN :<CTRL-J>
  139. 2300  REM ---QUADRATIC EQUATION OF FORM Y = A*(X - H)^2 + B---
  140. 2302  VTAB 22: PRINT "  Y = A*(X - H)^2 + B
  141. 2304  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  142. 2306  HOME 
  143. 2308  VTAB 22: PRINT "  Y = ";A;"*(X - H)^2 + B"
  144. 2310  INPUT "TYPE IN YOUR VALUE FOR H: ";H
  145. 2312  HOME 
  146. 2314  VTAB 22: PRINT "  Y = ";A;"*(X - ";H;")^2 + B"
  147. 2316  INPUT "TYPE IN YOUR VALUE FOR B: ";B
  148. 2318  HOME 
  149. 2320  VTAB 22: PRINT "  Y = ";A;"*(X - ";H;")^2 + ";B
  150. 2322  FOR X =  -10 TO 10  STEP .2
  151. 2324  LET Y = A *((X -H) ^2) +B
  152. 2326  LET Z = 13.9 *X +139
  153. 2328  LET V = 79 -(13.9 *K *Y)
  154. 2330  IF V <0  OR V >159  THEN  GOTO 2334
  155. 2332  HPLOT Z,V
  156. 2334  NEXT X
  157. 2336  RETURN :<CTRL-J>
  158. 2400  REM ---QUADRATIC INEQUALITY OF FORM Y < A*(X - H)^2 + B---
  159. 2402  VTAB 22: PRINT "  Y < A*(X- H)^2 + B"
  160. 2404  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  161. 2406  HOME 
  162. 2408  VTAB 22: PRINT "  Y < ";A;"*(X - H)^2 + B"
  163. 2410  INPUT "TYPE IN YOUR VALUE FOR H: ";H
  164. 2412  HOME 
  165. 2414  VTAB 22: PRINT "  Y < ";A;"*(X - ";H;")^2 + B"
  166. 2416  INPUT "TYPE IN YOUR VALUE FOR B ( -7 < B < 7 ):";B
  167. 2418  IF B < -7  OR B >7  THEN  GOTO 2416
  168. 2420  HOME 
  169. 2422  VTAB 22: PRINT "  Y < ";A;"*(X - ";H;") ^ 2 + ";B
  170. 2424  LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
  171. 2426  FOR X =  -10 TO 10  STEP .2
  172. 2428  LET Y = A *((X -H) ^2) +B
  173. 2430  LET Z = 13.9 *X +139
  174. 2432  IF V > = 0  AND V < = 159  THEN  HPLOT Z,V
  175. 2434  LET V = 79 -(13.9 *K *Y)
  176. 2436  LET C = C * -1: REM SHADES WHEN C = -1 
  177. 2438  IF C = 1  THEN  GOTO 2444
  178. 2440  IF V > = 0  AND V < = 159  THEN  HPLOT Z,V TO Z,159
  179. 2442  IF (V <0  OR V >159)  AND A >0  THEN  HPLOT Z,0 TO Z,159
  180. 2444  NEXT X
  181. 2446  RETURN :<CTRL-J>
  182. 2500  REM ---QUADRATIC INEQUALITY OF FORM Y > A*(X - H)^2 + B---
  183. 2502  VTAB 22: PRINT "  Y > A*(X-H)^2 + B"
  184. 2504  INPUT "TYPE IN YOUR VALUE FOR A: ";A
  185. 2506  HOME 
  186. 2508  VTAB 22: PRINT "  Y > ";A;"*(X - H)^2 + B"
  187. 2510  INPUT "TYPE IN YOUR VALUE FOR H: ";H
  188. 2512  HOME 
  189. 2514  VTAB 22: PRINT "  Y > ";A;"*(X - ";H;")^2 + B"
  190. 2516  INPUT "TYPE IN YOUR VALUE FOR B ( -7 < B < 7 ):";B
  191. 2518  IF B < -7  OR B >7  THEN  GOTO 2516
  192. 2520  HOME 
  193. 2522  VTAB 22: PRINT "  Y > ";A;"*(X - ";H;") ^ 2 + ";B
  194. 2524  LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
  195. 2526  FOR X =  -10 TO 10  STEP .2
  196. 2528  LET Y = A *((X -H) ^2) +B
  197. 2530  LET Z = 13.9 *X +139
  198. 2532  LET V = 79 -(13.9 *K *Y)
  199. 2534  IF V > = 0  AND V < = 159  THEN  HPLOT Z,V
  200. 2536  LET C = C * -1: REM SHADES WHEN C = -1
  201. 2538  IF C = 1  THEN  GOTO 2544
  202. 2540  IF V > = 0  AND V < = 159  THEN  HPLOT Z,V TO Z,0
  203. 2542  IF (V <0  OR V >159)  AND A <0  THEN  HPLOT Z,159 TO Z,0
  204. 2544  NEXT X
  205. 2546  RETURN :<CTRL-J>
  206. 3000  REM ---CIRCLES---
  207. 3002  VTAB 21: INPUT "CIRCLES: 1, 2, OR 3: ";N
  208. 3004  IF N <1  OR N >3  THEN  GOTO 3008
  209. 3006  ON N GOSUB 3100,3200,3300
  210. 3008  RETURN :<CTRL-J>
  211. 3100  REM ---CIRCLE OF RADIUS R---
  212. 3102  VTAB 22: INPUT " GIVE A RADIUS BETWEEN 0 AND 10: ";R
  213. 3104  VTAB 23: PRINT "Y = SQR(";R;"^2 - X^2)"
  214. 3106  FOR X =  -10 TO 10  STEP .2
  215. 3108  IF  ABS(X) >R  THEN  GOTO 3120
  216. 3110  LET Y =  SQR(R ^2 -X ^2)
  217. 3112  LET H = 13.9 *X +139
  218. 3114  LET V = 79 -(13.9 *K *Y)
  219. 3116  IF V <0  OR V >159  THEN  GOTO 3120
  220. 3118  HPLOT H,V: HPLOT H,79 +(13.9 *K *Y)
  221. 3120  NEXT X
  222. 3122  RETURN :<CTRL-J>
  223. 3200  REM ---CIRCLE OF RADIUS R WITH CENTER AT (X2,Y2)---
  224. 3202  VTAB 22: INPUT "GIVE A RADIUS BETWEEN 0 AND 10: ";R
  225. 3204  VTAB 22: INPUT "GIVE THE LOCATION OF THE CENTER: ";X2,Y2
  226. 3206  VTAB 22: PRINT "CIRCLE WITH RADIUS ";R;" AND CENTER (";X2;",";Y2;")."
  227. 3208  VTAB 23: PRINT "Y = SQR(";R;"^2 - (X - ";X2;")^2) + ";Y2
  228. 3210  FOR X =  -10 TO 10  STEP .2
  229. 3212  IF (X -X2) ^2 >R ^2  THEN  GOTO 3230
  230. 3214  LET Y =  SQR(R ^2 -(X -X2) ^2) +Y2
  231. 3216  LET H = 13.9 *X +139
  232. 3218  LET V = 79 -(13.9 *K *Y)
  233. 3220  IF V <0  OR V >159  THEN  GOTO 3224
  234. 3222  HPLOT H,V
  235. 3224  LET V2 = 79 +(13.9 *K *Y) -(13.9 *K *Y2) *2
  236. 3226  IF V2 <0  OR V2 >159  THEN  GOTO 3230
  237. 3228  HPLOT H,79 -(13.9 *K *Y2) *2 +(13.9 *K *Y)
  238. 3230  NEXT X
  239. 3232  RETURN :<CTRL-J>
  240. 3300  REM ---CIRCLE OF RADIUS R USING TRIG FUNCTIONS---
  241. 3302  VTAB 22: INPUT "GIVE A RADIUS BETWEEN 0 AND 10: ";R
  242. 3304  VTAB 23: PRINT "FOR C = 0 TO 2*3.14 STEP .2"
  243. 3306  VTAB 24: PRINT "X = ";R;"*(COS(C))  Y = ";R;"*(SIN(C))"
  244. 3308  FOR C = 0 TO 2 *3.14  STEP .2
  245. 3310  LET X = R *( COS(C)): LET Y = R *( SIN(C))
  246. 3312  LET H = 13.9 *X +139
  247. 3314  LET V = 79 -(13.9 *K *Y)
  248. 3316  IF V <0  OR V >159  THEN  GOTO 3320
  249. 3318  HPLOT H,V
  250. 3320  NEXT C
  251. 3322  RETURN :<CTRL-J>
  252. 4000  REM ---CLEAR SCREEN---
  253. 4002  GOSUB 200: GOSUB 300: GOSUB 400: RETURN :<CTRL-J>
  254. 5000  REM ---END PROGRAM---
  255. 5002  TEXT : PRINT  CHR$(4);"RUN MENU"